The Cassowary Linear Arithmetic Constraint Solving Algorithm: Interface and Implementation

نویسندگان

  • Greg J. Badros
  • Alan Borning
چکیده

Linear equality and inequality constraints arise naturally in specifying many aspects of user interfaces, such as requiring that one window be to the left of another, requiring that a pane occupy the leftmost 1/3 of a window, or preferring that an object be contained within a rectangle if possible. Current constraint solvers designed for UI applications cannot efficiently handle simultaneous linear equations and inequalities. This is a major limitation. We describe Cassowary—an incremental algorithm based on the dual simplex method that can solve such systems of constraints efficiently. This informal technical report describes the latest version of the Cassowary algorithm. It is derived from the paper “Solving Linear Arithmetic Constraints for User Interface Applications” by Alan Borning, Kim Marriott, Peter Stuckey, and Yi Xiao [7], published in the UIST’97 Proceedings. The UIST paper also contains a description of QOCA, a closely related solver that finds least-squares solutions to linear constraints. This technical report, which is intended to be self-contained, includes material on Cassowary from the UIST paper, plus a description of the Java, C++, and Smalltalk implementations and their interfaces, along with additional details, corrections, and clarifications. An earlier technical report also discussed QOCA and the similarities between Cassowary and that algorithm [6].

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Solving Disjunctive Constraints for Interactive Graphical Applications

In interactive graphical applications we often require that objects do not overlap. Such non-overlap constraints can be modelled as disjunctions of arithmetic inequalities. Unfortunately, disjunctions are typically not handled by constraint solvers that support direct manipulation, in part because solving such problems is NP-hard. We show here that is in fact possible to (re-)solve systems of d...

متن کامل

Solving Linear Arithmetic Constraints for User Interface Applications: Algorithm Details

Linear equality and inequality constraints arise naturally in specifying many aspects of user interfaces, such as requiring that one window be to the left of another, requiring that a pane occupy the leftmost 1/3 of a window, or preferring that an object be contained within a rectangle if possible. Current constraint solvers designed for UI applications cannot e ciently handle simultaneous line...

متن کامل

Providing a Method for Solving Interval Linear Multi-Objective Problems Based on the Goal Programming Approach

Most research has focused on multi-objective issues in its definitive form, with decision-making coefficients and variables assumed to be objective and constraint functions. In fact, due to inaccurate and ambiguous information, it is difficult to accurately identify the values of the coefficients and variables. Interval arithmetic is appropriate for describing and solving uncertainty and inaccu...

متن کامل

Linear Equation Solving for Constraint Logic Programming

Linear constraint solving in constraint logic programming requires in cremental checks of the satis ability of a system of equations and inequali ties Experience has shown that Gauss Jordan elimination and the simplex method are e cient enough to be of practical value in the implementation of CLP languages based on linear arithmetic constraints However these algorithms must be modi ed to accomm...

متن کامل

Combining Constraint Solving and Symbolic Model Checking for a Class of Systems with Non-linear Constraints

We extend the conventional BDD-based model checking algorithms to verify systems with non-linear arithmetic constraints. We represent each constraint as a BDD variable, using the information from a constraint solver to prune the BDDs by removing paths that correspond to infeasible constraints. We illustrate our technique with a simple example, which has been analyzed with our prototype implemen...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1998